package com.lz.demo.log.jul;

import com.lz.demo.log.jul.subpackage.SubPackageTest;

import java.io.IOException;
import java.io.InputStream;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;

/**
 * jul日志级别（从高到低）：severe、warning、info（默认级别）、config、fine、finer、finest
 * 另外，还有 off 和 all 表示关闭和记录所有日志
 */
public class JulTest {

    // 使用 static 代码块加载自定义的配置文件 resources/logging.properties（如果注释 static 代码块，是 $JAVA_HOME/jre/lib/logging.properties 生效）
    static {
        // 通过类加载器读取配置文件
        InputStream ins = JulTest.class.getClassLoader().getResourceAsStream("logging.properties");
        // 创建 LogManager
        LogManager logManager = LogManager.getLogManager();

        // 通过 LogManager 加载配置文件
        try {
            logManager.readConfiguration(ins);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    static Logger LOGGER = Logger.getLogger(JulTest.class.getName());

    public static void main( String[] args ) {
        LOGGER.finest("jul finest message.");
        LOGGER.finer("jul finer message.");
        LOGGER.fine("jul fine message.");
        LOGGER.config("jul config message.");
        LOGGER.info("jul info message.");
        LOGGER.warning("jul warning message.");
        LOGGER.severe("jul severe message.");

        SubPackageTest.test();
    }
}
